<template>
  <div>
    <router-view></router-view>
  </div>
</template>

<script>
export const AV = require('leancloud-storage');
const {Query, User} = AV;

AV.init({
  appId: "FssIrR3nFk0NMUCJNuc1MvNl-gzGzoHsz",
  appKey: "omaOjlEAVXIyqglXrpbl3iaN",
  serverURL: "https://fssirr3n.lc-cn-n1-shared.com"
});

/**
 * ------------------------------ 注册 与 登录 功能示例 --------------------------------------
 */

/**
 * 注册用户
 * 用户名，密码必需，可选邮箱和电话号码
 * 用户名、邮箱以及电话号码都不能重复
 * 注册失败会弹窗提示原因。
 */
function signUp(username, password, email = '', phoneNumber = '') {
  const user = new AV.User();
  user.setUsername(username);
  user.setPassword(password);
  if (email) {
    user.setEmail(email);
    AV.User.requestEmailVerify(email);
  }
  if (phoneNumber) {
    user.setMobilePhoneNumber(phoneNumber);
    AV.User.requestMobilePhoneVerify(phoneNumber);
  }
  user.signUp().then((user) => {
    console.log(`sign up sucessed, userId${user.id}`);
  }, (error) => {
    alert(error.message);
  })
}

/**
 * 登录功能
 * 有三种方式，用户名、邮箱、手机号，都需要密码登录
 */
// 用户名登录登录
function loginWithName(name, password) {
  AV.User.logIn(name, password).then((user) => {
    // 登录成功
    console.log(`login sucessed, username ${user.getUsername()}`);
    console.log(user);
    if (!user.get('emailVerified') && !user.getEmail()) {
      AV.User.requestEmailVerify(user.getEmail());
    }
  }, (error) => {
    // 登录失败（可能是密码错误）
    console.log(error.message);
    throw error;
  });
}

//邮箱登录
function loginWithEmail(email, password) {
  AV.User.loginWithEmail(email, password).then((user) => {
    // 登录成功
    console.log(`login sucessed, username ${user.getEmail()}`);
    if (!user.get('emailVerified')) {
      AV.User.requestEmailVerify(user.getEmail());
    }
  }, (error) => {
    // 登录失败（可能是密码错误）
    console.log(error.message);
    throw error;
  });
}

// 手机号登录
function loginWithPhone(phone, password) {
  AV.User.logInWithMobilePhone(phone, password).then((user) => {
    // 登录成功
    console.log(`login sucessed, username ${user.getMobilePhoneNumber()}`);
    if (!user.get('mobilePhoneVerified')) {
      AV.User.requestMobilePhoneVerify(user.getMobilePhoneNumber());
    }
  }, (error) => {
    // 登录失败（可能是密码错误）
    console.log(error.message);
    throw error;
  });
}

/**
 * 注册与登录的例子
 */
// let name = 'random';
// let password = 'randompassword';
// let email = 'random@email.com';
// let phone = '+8618012341234';
// signUp(name, password, email, phone);  // 注册
// loginWithName(name, password);  // 登录

/**
 * 判断用户是否已经登录，已经获取登录的用户，再做进一步操作
 */
const currentUser = AV.User.current();  // 获取当前用户
if (currentUser) {
  // 判断是否有用户登录，有则判断为 true ，执行对应语句
  // alert(currentUser.getUsername());
} else {
  // 没有用户执行
  // alert('No User.')
}

/**
 *  ------------------------------ 示例结束 ---------------------
 */

export default {}
</script>

<style lang="scss" scoped>

</style>